package com.zdy.im.chat;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.sixeco.framework.common.data.BaseBeanClone;

import java.io.Serializable;
import java.util.Date;

/**
 * @Author 作者 : zdy
 * @CreateDate 创建时间: 2021-02-30
 * @WeeK 星期: 星期四
 * @Version 版本: v1.0.0
 * <pre>
 *
 *  @Description (说明):  消息类型发送包装对象，用于服务端消息流转使用，
 *
 **/
public class ChatMessageInfo  extends BaseBeanClone implements Serializable {

    /**
     * 消息cmd命令码
     *  实现类 Command， 实现接口 ICommand
     */
    protected int cmd ;

    /**
     * 发送信息的代码
     * ChatMessageEnum,编码源于ChatMessageEnum枚举中;
     */
    private  int type;

    /**
     * 信息，发送到用户端的消息体内容
     */
    private ChatMessageBody message;

    /**
     * 扩展参数字段
     */
    protected JSONObject ext;


    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public int getCmd() {
        return cmd;
    }

    public void setCmd(int cmd) {
        this.cmd = cmd;
    }

    public ChatMessageBody getMessage() {
        return message;
    }

    public void setMessage(ChatMessageBody message) {
        this.message = message;
    }


    public JSONObject getExt() {
        return ext;
    }

    public void setExt(JSONObject ext) {
        this.ext = ext;
    }

    public static void main(String[] args) {
        ChatMessageBody c = ChatMessageBody.build();
        c.setToId(111);
        c.setToUserImg("测试名称1111");
        c.setToUserImg("/img/head.jpg");
        c.setContent("私聊测试");
        c.setContentImg("/chat/img.jpg");
        c.setContentVideo("/chat/video.vo");
        c.setMine(false);
        c.setGlobalId(123);
        c.setMessageId(123);
        c.setMessageType(0);
        c.setSendTime(new Date());
        c.setSendUserId(1234);
        c.setSendUserName("sendName");
        c.setSendUserImg("/send/img.jpg");

        ChatMessageInfo info = new ChatMessageInfo();
        info.setType(11);
        info.setCmd(101);
        info.setMessage(c);
        String chat  = JSON.toJSONString(info);
        System.out.println(chat);

    }
}
